package com.fndsoft.police.xuancheng.view;

import java.util.ArrayList;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

import com.fndsoft.police.xuancheng.R;
import com.fndsoft.police.xuancheng.util.ValueUtil;
import com.fndsoft.police.xuancheng.util.ViewUtil;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;

/**
 * @author carlos carlosk@163.com
 * @version 创建时间：2014年2月28日 上午9:40:15 这是一个可以制定分栏和搜索框的view 例子请看test.ui.Fg2类
 */
public class ToolTabBar extends LinearLayout {
	private Context context;
	private ToolTabBarListener toolTabBarListener;
	@ViewInject(R.id.llContent)
	private LinearLayout llContent;// 内容
	private int seletedIndex;
	private ArrayList<Button> btnList;
	private ArrayList<View> vChooseeDiver;// 下划线

	public ToolTabBar(Context context, AttributeSet attrs) {
		super(context, attrs);
		this.context = context;
		btnList = new ArrayList<Button>();
		vChooseeDiver = new ArrayList<View>();
		LayoutInflater mInflater = LayoutInflater.from(context);
		mInflater.inflate(R.layout.tool_tab_bar_v, this);
		ViewUtils.inject(this);
	}

	private View.OnClickListener onClickBtnListener = new View.OnClickListener() {

		@Override
		public void onClick(View v) {
			Object o = v.getTag();
			if (null == o || !(o instanceof Integer)) {
				return;
			}
			int index = (Integer) o;
			changeSeletedViews(index);
			if (null != toolTabBarListener) {
				toolTabBarListener.onSeletedIndex(index);
			}
		}
	};

	/**
	 * 使用string array的资源文件设置标题
	 * 
	 * @author carlos carlosk@163.com
	 * @version 创建时间：2014年2月28日 上午9:46:47
	 * @param arrayStringResIdId
	 */
	public void initTitles(int arrayStringResIdId) {
		// 清空全部
		llContent.removeAllViews();
		btnList.clear();
		vChooseeDiver.clear();
		LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
				LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
		layoutParams.weight = 1;
		String[] arrStrings = context.getResources().getStringArray(
				arrayStringResIdId);
		// 循环创建btn
		int size = arrStrings.length;
		for (int i = 0; i < size; i++) {
			String string = arrStrings[i];
			View view = ViewUtil.buildView(R.layout.tool_tab_bar_item);
			Button button = (Button) view.findViewById(R.id.btnItem);
			View vDiver = view.findViewById(R.id.vChooseDiver);
			View vRightDiver = view.findViewById(R.id.vRightDiver);
			if (i == size - 1) {
				ViewUtil.setViewsGone(vRightDiver);
			} else {
				ViewUtil.setViewsVisible(vRightDiver);
			}
			ViewUtil.setViewsGone(vDiver);
			view.setLayoutParams(layoutParams);
			button.setText(string);
			button.setTag(Integer.valueOf(i));
			button.setOnClickListener(onClickBtnListener);
			llContent.addView(view);
			btnList.add(button);
			vChooseeDiver.add(vDiver);
		}
		changeSeletedViews(0);
	}

	/**
	 * 改变选中的状态
	 * 
	 * @author carlos carlosk@163.com
	 * @version 创建时间：Mar 9, 2014 4:01:00 PM
	 */
	public void changeSeletedViews(int selectedIndex) {
		seletedIndex = selectedIndex;
		int size = btnList.size();
		for (int i = 0; i < size; i++) {
			Button button = btnList.get(i);
			button.setTextColor(ValueUtil.getColor(R.color.c6));
			View vDiver = vChooseeDiver.get(i);
			ViewUtil.setViewsGone(vDiver);
			if (i == seletedIndex) {
				button.setTextColor(ValueUtil.getColor(R.color.c5));
				ViewUtil.setViewsVisible(vDiver);
			}
		}
	}

	public void setToolTabBarListener(ToolTabBarListener toolTabBarListener) {
		this.toolTabBarListener = toolTabBarListener;
	}

	public static interface ToolTabBarListener {

		/**
		 * 用户选中了某一个索引
		 * 
		 * @author carlos carlosk@163.com
		 * @version 创建时间：2014年2月28日 上午9:43:02
		 * @param index
		 */
		public void onSeletedIndex(int index);

	}

	public int getSeletedIndex() {
		return seletedIndex;
	}

	/**
	 * 隐藏标题栏列表
	 * 
	 * @author carlos carlosk@163.com
	 * @version 创建时间：2014年4月7日 下午8:56:43
	 */
	public void hideTitlesV() {
		ViewUtil.setViewsGone(llContent);
	}

}
